package com.hotpot.sys.controller;

import com.hotpot.common.base.BaseController;
import com.hotpot.common.base.vm.ResultVM;
import com.hotpot.common.base.vm.SmartPageVM;
import com.hotpot.sys.entity.User;
import com.hotpot.sys.service.UserService;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;

/**
 * 描述：
 *
 * @author: ruikanwang
 * @date: 2017/11/16 0016 13:02
 * @version: V1.0
 * 注意：本内容仅限于新疆感知科技有限公司内部传阅,禁止外泄以及用于其他的商业目
 * Copyright © 2017-ganinfo. All rights reserved.
 */
@RestController
@RequestMapping("/sys/user")
@Api(value = "用户接口")
public class UserController extends BaseController<UserService,User> {
    /**
     * 根据smarttable对象分页查询
     * @param spage
     * @return
     */
    @PostMapping("/getPageData")
    @ApiOperation(value = "查询列表")
    public ResultVM getSmartData(@RequestBody SmartPageVM<User> spage){
        return baseGetSmartData(spage);
    }

    /**
     * 新增
     * @param user
     * @return
     */
    @PostMapping
    @ApiOperation(value = "新增")
    public ResultVM create(@RequestBody User user) {
        return baseCreate(user);
    }

    /**
     * 更新
     * @param user
     * @return
     */
    @PutMapping
    @ApiOperation(value = "更新")
    public ResultVM update(@RequestBody User user) {
        return baseUpdate(user);
    }

    /**
     * 根据id获取实体对象
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    @ApiOperation(value = "根据主键获取")
    public User getInfo(@PathVariable String id) {
        return baseGetInfo(id);
    }

    /**
     * 删除
     * @param id
     * @return
     */
    @DeleteMapping("/{id}")
    @ApiOperation(value = "根据主键删除")
    public ResultVM delete(@PathVariable String id) {
        return baseDelete(id);
    }

}
